Digital data can be communicated wirelessly by using spread spectrum techniques. In a typical spread spectrum approach, a data signal, d(t), is wirelessly transmitted by encoding the signal with a Walsh function, w(t), that corresponds to a Walsh code, spreading the encoded signal with a pseudonoise (PN) sequence, g(t), and then using the spread signal to modulate a radio frequency (RF) carrier, for example, using binary phase shift keying (BPSK) or quadrature phase shift keying (QPSK). The resulting spread spectrum signal, S(t), may be represented as:S(t)=d(t)w(t)g(t)cos 2πfct where fc is the carrier frequency. A receiver may receive this spread spectrum signal as a received signal, R(t), which may be represented as:R(t)=d(t)w(t)g(t)cos [2πfct+φ(t)]where φ(t) is a phase which may vary as a function of time, for example, because of the receiver's motion relative to the transmitter.
The receiver may recover the data signal, d(t), from R(t) in several steps. As one step in the process, the receiver may demodulate the received signal, R(t), to obtain a baseband signal, B(t). Typically, coherent demodulation is used, which involves multiplying R(t) by a reference signal having the same frequency and phase, followed by low-pass filtering. The resulting baseband signal, B(t), may be represented by:B(t)=d(t)w(t)g(t)B(t) may be despread by multiplying by g(t) and decoded by multiplying by w(t). The result may then be integrated over a Walsh period, i.e., a time period over which different Walsh functions are orthogonal, to recover d(t). This process is illustrated in FIG. 1.
In many systems, the reference signal is obtained from a pilot signal that is transmitted along with S(t). The pilot signal is typically a signal that contains no data but is spread by the same PN sequence as S(t). Thus, the pilot signal is often described as a transmission of all zeroes that is encoded by Walsh code, W0, a code which has all zeroes. In that case, the pilot signal received by the receiver can be represented as:P(t)=g(t)cos [2πfct+φ(t)]The reference signal can be obtained from this received pilot signal by multiplying P(t) by g(t) and then using a phase locked loop (PLL). Alternatively, the reference signal can be generated from R(t), for example, by using a Costas loop or squaring loop. Thus, while a pilot signal is typically used for coherent demodulation of spread spectrum signals, coherent demodulation can also be achieved without a pilot signal.
In addition to the reference signal, the PN sequence, g(t), and the Walsh function, w(t), are also used to recover the data signal, d(t), from the received signal, R(t). The receiver may generate w(t) based on the Walsh code of the particular forward link channel that the receiver is receiving. For example, IS-95 CDMA supports the use of 64 Walsh codes, identified as W0 through W63, to define 64 forward link channels, including a pilot channel, a sync channel, up to seven paging channels, and forward traffic channels. Walsh code W0 corresponds to the pilot channel, Walsh code W32 corresponds to the sync channel, Walsh codes W1 through W7 may be used for paging channels, and the remaining Walsh codes correspond to forward traffic channels. Thus, to receive the sync channel, the receiver may use the Walsh function, w32(t), that corresponds to Walsh code W32 and, to receive a paging channel, the receiver may use the Walsh function, w1(t), that corresponds to Walsh code W1. Forward traffic channels are typically assigned by the network for particular communication sessions. Thus, when a receiver is assigned a forward traffic channel that is identified by Walsh code Wi, the receiver may use the corresponding Walsh function, with wi(t) to receive the assigned traffic channel.
Typically, the receiver is also be able to generate the PN sequence, g(t), that is used to despread R(t). In IS-95 CDMA, g(t) is a “short code” sequence of 32,767 chips which are transmitted at a rate of 1.2288 MHz. Thus, the short code is repeated every 26.667 milliseconds, or 75 times every 2 seconds. In a cellular wireless communications network, each wireless coverage area (e.g., a cell or sector) uses the same short code, but with a characteristic time offset relative to every even second in a standard time base (e.g., GPS time). The offsets are in increments of 64 chips to provide 512 possible offsets. In practice, a cellular wireless communications network might use only every Nth offset, where N is an integer greater than one. For example, if N=2, there would be 256 possible offsets.
When a wireless communication device first powers up in a given wireless coverage area of a cellular wireless network, the device may not know which of the possible offsets is being used in that area. In addition, the device may be receiving multiple signals from multiple base stations, each with a different offset. As a result, the signal that the device receives initially is effectively an unknown signal. To determine which of the 512 (or fewer) possible offsets is being used in its area, the device may use a trial-and-error approach in which the device selects a particular offset and determines whether a pilot signal with that offset can be found in the unknown received signal.
For example, to determine whether a pilot signal that uses the ith possible offset is in the received signal, the device may generate a PN sequence, g(t+Pi), where Pi is a phase corresponding to the ith offset, and then multiply the received signal by g(t+Pi). Because of the pseudorandom nature of the “short code” PN sequence, the energy of the product is essentially zero unless the phase in the generated PN sequence matches the phase of the PN sequence in the received signal. Thus, if the energy of the product is sufficiently above zero (e.g., greater than a threshold), then the device may determine that it has found a useable pilot signal. Otherwise, the device may try a different offset, and then another, until the device finds a useable pilot signal.
Once the wireless communication device has found a useable pilot signal in the unknown received signal, the device can receive other forward link channels that use the same offset. For example, the device may start receiving a sync channel or a paging channel. In so doing, the device may use the pilot signal to coherently demodulate the other forward link channels, and the device may use the known offset of the pilot signal to generate a PN sequence that will despread the other forward link channels.